package com.ldy.biz.shop.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result;

import lombok.Data;

/**
 * 订单表
 * 
 * @author lindeyi
 */
@Data
@TableName("shop_order")
public class Order {

	// 订单编号
	@TableId(type = IdType.INPUT)
	private String orderId;
	// 买家 ID
	private String customerId;
	// 商家
	private String orgCode;

	// 订单类型，外送，自提，定点取货
	private String orderType;

	// 订单地址
	private String orderAddress;

	// 定点地址
	private String addressPoint;

	// 订单电话
	private String orderPhone;

	// 订单人
	private String orderPerson;

	// 订单取货时间
	private String orderPickUpTime;

	// 下单时间
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date orderTime;

	// 配送费用
	private BigDecimal deliveryFee;

	// 金额
	private BigDecimal totalAmount;

	// 数量
	private Integer totalNumber;

	// 状态，待付款/已付款/已发货/已完成/已取消
	private String status;
	// 备注
	private String remarks;
	
	// 微信订单预支付id，prepay_id
	private String prepayId;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;

	/**
	 * 最后更新时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date lastUpdateTime;

	/**
	 * 订单商品
	 */
	@TableField(exist = false)
	private List<OrderItem> items;
	
	/**
	 * 微信预支付信息
	 */
	@TableField(exist = false)
	private WxPayUnifiedOrderV3Result.JsapiResult prePay;
}
